home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / progtool / modula2 / module / kbdevnt.def < prev    next >
Text File  |  1995-11-25  |  5KB  |  72 lines

  1. (******************************************************************************)
  2. (*      This MODULE is Public Domain. Copy me like a beast!                   *)
  3. (*               Christian Ledermann                                          *)
  4. (*               Wölfelkofen 2                                                *)
  5. (*               84166 Adlkofen                                               *)
  6. (******************************************************************************)
  7. (*                                                                            *)
  8. (* Started:   20.12.92     03:54:30                                           *)
  9. (* Version:   20.01.94     04:12:54                                           *)
  10. (*                                                                            *)
  11. (******************************************************************************)
  12. (*                                                                            *)
  13. (* Diese Software ist ohne jede Garantie. Ich verspreche                      *)
  14. (* keinerlei Wartung und übernehme keine Verantwortung für Schäden die        *)
  15. (* durch die Benutzung dieses Programmes entstehen.                           *)
  16. (* Jegliche Ersatzansprüche lehne ich ab.                                     *)
  17. (*                                                                            *)
  18. (******************************************************************************)
  19. DEFINITION MODULE KbdEvnt;
  20.  
  21. FROM SYSTEM IMPORT ADDRESS;
  22.  
  23. PROCEDURE MenuSearch(AppID:INTEGER; MenuTree:ADDRESS;KeyState,Key:INTEGER;
  24. VAR Taste:CHAR ):BOOLEAN;
  25. (*************************************************************************)
  26. (* Mit MenuSearch kann man seine Drop-Down Menüs durch Tastaturkürzel    *)
  27. (* bedienen.                                                             *)
  28. (* Der Menüeintrag muß dabei folgendermaßen aufgebaut sein:              *)
  29. (* Text (wie Üblich); Blank (wichtig sonst wird der Shortcut nicht als   *)
  30. (* solcher erkannt!); Zeichen für Shift, Alternate, Control; Taste (hier *)
  31. (* sind nur Großbuchstaben oder Sonderzeichen erlaubt)                   *)
  32. (* Zeichen für Shift : CHR(1), Im RCS 1.4 mit Control 'A' zu erreichen.  *)
  33. (* Zeichen für Alternate : CHR(7), Im RCS mit Control 'G' zu erreichen.  *)
  34. (* Zeichen für Control : ^                                               *)
  35. (* Diese drei Zeichen können kombiniert werden müssen aber in dieser     *)
  36. (* Reihenfolge stehen.                                                   *)
  37. (* Als Taste sind sämtliche Zeichen zugelassen die auf der Tastatur      *)
  38. (* stehen inclusive der Funktionstasten und Help.                        *)
  39. (* Ein Menüeintrag muß also folgendermaßen aussehen : ' Speichern ^F2'   *)
  40. (* Im Programm hat dann der Druck der Taste control F2 die gleiche       *)
  41. (* Wirkung wie die Anwahl des Menüeintrages.                             *)
  42. (* Einschränkungen : Shift 0-9 kann nur über das Nummernfeld erreicht    *)
  43. (* werden, vor §,",!,%,... muss(!) das Shift zeichen stehen.             *)
  44. (* Wenn man einige Einträge doppelt vergibt wird immer nur der erste     *)
  45. (* gefunden, es sei denn er wäre disabled.                               *)
  46. (*                                                                       *)
  47. (* AppID : ID des aufrufenden Programmes, dies ist der Rückgabewert von  *)
  48. (* AppInitialize.                                                        *)
  49. (* MenuTree : Die ADDRESSe des Menüs das auf Shortcuts untersucht wird,  *)
  50. (* Diese ADDRESSe braucht man auch zum Aufbau der Menüzeile mit          *)
  51. (* AES.MenuBar; sie wird mit AES.ResourceGetAdrr ermittelt.              *)
  52. (* KeyState : Status der Shift, Control und Alternate Tasten; wird von   *)
  53. (* AES.EventMultiple als MoKState geliefert.                             *)
  54. (* Key : Scancode und Asciiwert der gedrückten Taste, wird von           *)
  55. (* AES.EventMultiple als KReturn geliefert.                              *)
  56. (* Taste : gibt den CHAR der gedrückten Taste als Großbuchstabe zurück   *)
  57. (* dies ist dazu gedacht falls die Taste nicht im Menü zu finden war in  *)
  58. (* eine eigene Tastaturroutine zu verzweigen, und die Berechnung der     *)
  59. (* Taste zu vermeiden.                                                   *)
  60. (* Rückgabe : TRUE falls die Taste gefunden wurde und die entsprechende  *)
  61. (* Message ans eigene Programm abgeschickt wurde, FALSE wenn der Shortcut*)
  62. (* nicht in der Menüleiste gefunden wurde.                               *)
  63. (* Dies wieder um eine eigene Tastaturroutine einzubinden für nicht im   *)
  64. (* Menü verzeichnete Shortcuts.                                          *)
  65. (* -> ST-Computer 11/89.                                                 *)
  66. (*************************************************************************)
  67.  
  68. PROCEDURE ConcatScanString(VAR ScanString : ARRAY OF CHAR;KeyState, Key :INTEGER);
  69. (*********** Hilfsprogramm für MenuSearch ************************)
  70.  
  71. END KbdEvnt.
  72.